@echo off
chcp 65001
rem mvn打包


rem 参数1,本地项目代码地址,具体到某个项目
set LOCAL_PROJECT_DIR=%1
rem 参数2,远程git仓库地址
set PROJECT_REPO_URL=%2

if "%LOCAL_PROJECT_DIR%" equ "" (
	echo 使用此打包脚本时,请按顺序传入两个参数,本地项目地址,远程仓库地址
	pause
	goto :logout
)

if "%PROJECT_REPO_URL%" equ "" (
	echo 使用此打包脚本时,请按顺序传入两个参数,本地项目地址,远程仓库地址
	pause
	goto :logout
)



rem 开始

:start
echo.
echo.
echo ********************
echo *
echo *  1:从本地打包
echo *
echo *  2:从远程仓库拉取后打包
echo *
echo *  3:退出打包
echo *
echo ********************
echo.
set /p var=请输入操作编号：


if %var% equ 1 goto packageFromLocal
if %var% equ 2 goto pullFromGit
if %var% equ 3 goto logout

echo 请输入正确的操作编号
goto start



rem 从本地打包

:packageFromLocal
call /d cd %LOCAL_PROJECT_DIR%

echo.
echo.
echo 开始打包
echo.
echo.

call mvn clean package

if %ERRORLEVEL% NEQ 0 (
	echo 打包失败
	pause
	exit /b 1
) else (
	echo 打包完成
	exit /b 0
)




rem 从远程拉取项目再打包

:pullFromGit
echo.
echo.
rem 检查目录是否存在，如果不存在则克隆仓库
IF NOT EXIST "%LOCAL_PROJECT_DIR%" (
    echo 克隆仓库到 %LOCAL_PROJECT_DIR%...
    cd /d "%LOCAL_PROJECT_DIR%"
    cd ../
    git clone %PROJECT_REPO_URL% 
) ELSE (
    echo 进入 %LOCAL_PROJECT_DIR%...
    cd /d "%LOCAL_PROJECT_DIR%"
    echo 拉取最新代码...
    git pull
)
if %ERRORLEVEL% neq 0 (
	echo 拉取失败
	goto :logout
)
goto packageFromLocal



rem 结束

:logout
echo 退出打包
exit /b 1
